Conventional chip sets, where separate chips each execute their own functions, are evolving toward system-on-chip technology, where various functional blocks are integrated on a single chip. The system-on-chip may integrate a variety of functional blocks on a single chip, including a microprocessor, an on-chip memory, an audio and video controller, a CODEC, a digital signal processor. Such integration may reduce the size of a product and decrease the development time and cost.
The functional blocks constructing the system-on-chip can be separately developed if required. Otherwise, blocks that have been developed by specialized developers can be used. This reusability of blocks can reduce the time and cost required for developing them.
Sometimes, blocks within a functional system-on-chip require a high data bandwidth, which increases the burden on transmission and reception of data among the cores. For example, in the case of a system-on-chip including a large-capacity on-chip memory and a controller for processing audio and video signals or a CODEC, considerable time and cost are required for designing the architecture of data transmission and reception between the functional blocks in the chip.
Generally, buses are used for transferring data between a large number of chips. In an embedded system using an ARM CPU, for example, components such as the CPU, a memory controller, a display controller and so on are interconnected using a bus architecture such as AMBA (Advanced Microprocessor Bus Architecture).
The system-on-chip has been evolving toward integration of functional blocks on a single chip, and interconnection of the cores has been developing toward using the bus architecture. Thus, a conventional low-integration system-on-chip employs a chip-level bus architecture without modification. However, as the integration of the system-on-chip is increased, the wires of the bus become narrower, and the characteristics of the wires, such as inductance, resistance, capacitance and so on, become significant compared to the sizes of gates within the functional blocks. Accordingly, it may be difficult to obtain desired system performance when the conventional bus architecture is applied to the system-on-chip.
To address these limitations, a network-on-chip has been developed, which is a technical field including efficient on-chip bus architecture and design methodology for the system-on-chip, and on-chip buses in a variety of architectures have been recently proposed. FIG. 1 illustrates a conventional on-chip bus architecture 100. This on-chip bus architecture was obtained by modifying a part of the bus architecture disclosed in U.S. Pat. No. 5,974,487. The on-chip bus architecture 100 can be used for a system-on-chip including nine functional block cores. Referring to FIG. 1, the on-chip bus architecture 100 includes nine cores 110a through 110i, which are the various functional blocks, switches 120a through 120l used for communication between the cores 110a through 110i, and links 130a through 130l and 131a through 131h for interconnecting the switches 120a through 120l. The links 130a through 130l and 131a through 131h and the switches 120a through 120l are configured in a ring topology, the rings of which form a two-dimensional mesh of the bus architecture. In this case, the switches 120a through 120l are positioned at the intersections of the mesh of rings. Each switch receives data from one switch through a link, and transfers it to another switch through another link. Furthermore, each switch transfers data through a link to a core, and transfers data from the core to other cores via other switches.
Here, a link can connect switches bi-directionally or uni-directionally. A bi-directional link can be constructed of a pair of uni-directional wires that transfer data in opposite directions. Otherwise, the bi-directional link can be composed of a single wire. When the core 110a has data that must be transmitted to the core 110e, the core 110a transmits the data to the switch 120a. The switch 120a transfers the data received from the core 110a through the link 131a to the switch 120d. Finally, the switch 120d transfers the data received through the link 131a to the core 110e. That is, in the on-chip bus architecture 100 of FIG. 1, data transmission and reception between cores is carried out through links connecting switches connected to the cores.
FIG. 2 shows a diagram for explaining mapping among cores, tiles and switches. In particular, FIG. 2 illustrates a core-communication graph and a network-on-chip architecture. The core-communication graph identifies that cores 210 which will be interconnected in order to construct the on-chip bus architecture 100 of FIG. 1. In FIG. 2, a core s is connected to cores d and d′. Here, cores mean functional blocks of a system-on-chip, such as memories, processors and so on. The network-on-chip architecture includes a plurality of switches 230, a plurality of tiles 220, and a plurality of links connecting the plurality of switches 230, and decides the connection of the tiles 220 and the switches 230. The tiles 220 are spaces where the cores are mounted, and are connected to the switches 230.
In FIG. 2, the core s is mapped to a tile k, the core d is mapped to a tile l, and the core d′ is mapped to a tile l′. One of switches surrounding the tile k is a switch i, and one of switches surrounding the tile l is a switch j. FIG. 2 shows data communication routes x and y from the switch i to the switch j.
In the construction of the on-chip bus architecture 100 of FIG. 1, a mapping relationship for which switches are connected to tiles is most important. Energy consumption and communication delay time for transmission and reception of data between two cores in the mesh-based on-chip bus architecture are proportional to the hop distance between the two cores. Accordingly, a tile-switch mapping method capable of minimizing the hop distance required for transmission and reception of data is needed. However, conventional tile-switch mapping methods typically consider only one-to-one mapping among, cores, tiles, and switches.
Furthermore, the conventional mapping methods do not propose an optimized mapping architecture for reducing energy consumption and communication delay time required for transmission and reception of data between cores, because they decide core-tile-switch mapping according to rules of thumb. Accordingly, a core-tile-switch mapping method is required that decides the mapping relationship among cores, tiles, and switches to minimize the hop distance needed for transmission and reception of data between cores, to thereby minimize energy consumption and communication delay time.